package chapter02;

public class Merge88 {
    /**
     * 归并排序
     * res存储排序后数组
     * 1.nums1[i]<=nums2[j]
     *   res[index++]=nums1[i++]
     * 2.nums1[i]>nums2[j]
     *  res[index++]=nums2[j++]
     * 最后将res放回nums1
     */
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int[] res=new int[m+n];
        int index=0;
        int i=0;
        int j=0;
        while (i<m&&j<n){
            res[index++]=nums1[i]<=nums2[j]?nums1[i++]:nums2[j++];
        }
        while (i<m){
            res[index++]=nums1[i++];
        }
        while (j<n){
            res[index++]=nums2[j++];
        }
        for(i=0;i<m+n;i++){
            nums1[i]=res[i];
        }
    }
}
